package com.zuipin.service;

import java.util.List;

import com.zuipin.entity.SysMenu;
import com.zuipin.framework.result.Result;
import com.zuipin.util.Pagination;
import com.zuipin.vo.MenuTreeNode;
import com.zuipin.vo.ModityPermissionVo;

/**
 * 菜单service
 * 
 * @ClassName: ISysMenuService
 * @Description: TODO
 * @author robot
 * @date 2017年3月27日 上午10:48:01
 */
public interface ISysMenuService {
	/**
	 * 查询菜单
	 * @Title: findById
	 * @author robot
	 * @date 2017年09月147日 09:21:08
	 * @param id,
	 * @return
	 * @return SysMenu
	 */
	public SysMenu findById(Long id);
	
	/**
	 * 插入菜单
	 * 
	 * @Title: insert
	 * @author robot
	 * @date 2017年09月147日 09:21:08
	 * @param sysMenu
	 * @return void
	 */
	public void insert(SysMenu sysMenu);
	
	/**
	 * 更新菜单
	 * 
	 * @Title: update
	 * @author robot
	 * @date 2017年09月147日 09:21:08
	 * @param sysMenu
	 * @return void
	 */
	public void update(SysMenu sysMenu);
	
	/**
	 * 删除菜单
	 * @Title: delete
	 * @author robot
	 * @date 2017年09月147日 09:21:08
	 * @param id,
	 * @return void
	 */
	public void delete(Long id);
	
	/**
	 * 搜索菜单
	  *  @Title: seachSysMenu
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysMenu
	  * @param page
	  * @return
	  * @return List<SysMenu>
	 */
	public List<SysMenu> seachSysMenu(SysMenu sysMenu, Pagination page);
	
	/**
	 * 通过角色ID查询对应的菜单权限
	 * @param roleId
	 */
	public List<SysMenu> findByRoleId(Long roleId, Integer status);
	
	/**
	 * 根据用户ID和系统ID获取菜单树
	  *  @Title: seachSysMenu
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysMenu
	  * @param page
	  * @return
	  * @return List<SysMenu>
	 */
	public List<MenuTreeNode> getMenuTree(Long userId, Long roleId, String sysId, Integer searchMode, Integer isCommon);
	
	/**
	 * 设置权限接口
	 * @param permissionVo
	 * @return
	 */
	public Result setPermission(ModityPermissionVo permissionVo);
	
	public Result<SysMenu> addOrUpdateSysMenu(SysMenu sysMenu);
	
}
